En el ámbito del análisis espacial en R, se pueden clasificar los datos espaciales en función del modelo de datos (Lovelace, Nowosad, and Muenchow 2019). Se pueden distinguir dos tipos de modelos de datos:

Datos vector

Este modelo está basado en puntos georeferenciados. Los puntos pueden representar localizaciones específicas, como la localización de edificios:

library(ggplot2)
library(sf)


# Hospitales en Toledo segun Eurostat
hosp_toledo <- st_read("data/hosp_toledo.geojson", quiet = TRUE)

ggplot() +
  geom_sf(
    data = hosp_toledo, aes(fill = "Centros Sanitarios"),
    color = "blue"
  ) +
  labs(
    caption = "Datos: Eurostat",
    title = "Hospitales y Centros de Salud en Toledo",
    fill = ""
  ) +
  theme_minimal() +
  theme(legend.position = "bottom")

Estos puntos también pueden estar conectados entre sí, de manera que formen geometrías más complejas, como líneas y polígonos:

tajo <- st_read("data/tajo_toledo.shp", quiet = TRUE)
toledo <- st_read("data/toledo_ciudad.gpkg", quiet = TRUE)


ggplot(toledo) +
  geom_sf(fill = "cornsilk2") +
  geom_sf(data = tajo, col = "lightblue2", lwd = 2, alpha = 0.7) +
  geom_sf(data = hosp_toledo, col = "blue") +
  coord_sf(
    xlim = c(-4.2, -3.8),
    ylim = c(39.8, 39.95)
  ) +
  theme_minimal() +
  labs(title = "Ciudad de Toledo")

En el ejemplo anterior, el río Tajo está representado como una línea (sucesión de puntos unidos entre sí) y la ciudad de Toledo como un polígono (línea de puntos cerrada formando un continuo). A modo ilustrativo, podemos observar la descomposición en puntos de todos los datos espaciales representados en el gráfico anterior.

Datos raster

Los datos ráster son datos representandos en una rejilla rectangular de píxeles (denomindada matriz) que se puede visualizar en diversos dispositivo de representación. El caso más cotidiano de un ráster es una fotografía, donde la imagen se representa como una serie de celdas, determinadas por la resolución de la imagen (número total de píxeles, determinados como nº de píxeles en cada fila por nº de píxeles en cada columna) y el color que presenta cada uno de estos píxeles.

En el ámbito de los datos espaciales, la definición es muy similar. Un archivo ráster está formado por una malla regular de píxeles georreferenciada:

En el ejemplo anterior, el archivo ráster tiene únicamente una capa (ESP_alt). Eso implica que cada píxel tiene asociado un único valor, en este caso, la altitud media del terreno observada en cada píxel o celda.

Datos de un ráster (detalle)
x y ESP_alt
-5.391667 40.3 1498.312
-5.358333 40.3 1701.125
-5.325000 40.3 1825.312
-5.291667 40.3 1739.062
-5.258333 40.3 1756.062
-5.225000 40.3 1659.688
-5.191667 40.3 1607.375
-5.158333 40.3 1809.562
-5.125000 40.3 1874.625
-5.091667 40.3 1691.312
-5.058333 40.3 1511.500
-5.025000 40.3 1207.000
-4.991667 40.3 1160.125
-4.958333 40.3 1396.125
-4.925000 40.3 1624.125

Los rásters pueden contener varias capas (o layers), de manera que cada píxel puede tener asociados varios valores. Volviendo al ejemplo de la fotografía, en un modelo simple de color RGB cada píxel lleva asociado 3 valores (rojo, verde o azul), de manera que al combinar las tres capas se puede definir un color distinto en cada píxel.

En el siguiente ejemplo vamos a usar una imagen de mapa georreferenciada, como las proporcionadas por servicios de mapas online, para analizar su composición.

tile <- rast("data/Toledo_multi_tile.tiff")

plotRGB(tile, mar = c(0, 0, 2, 0), main = "Provincia de Toledo")
plot(st_geometry(Tol_prov), add = TRUE)

El ráster se puede descomponer en las tres capas RGB mencionadas anteriormente:

Datos de un ráster multicapa (detalle)
x y lyr.1 lyr.2 lyr.3
-5.466412 40.34418 215.2128 208.1061 190.5410
-5.463875 40.34418 228.0369 223.1854 211.2115
-5.461338 40.34418 229.3495 224.3414 213.4325
-5.458800 40.34418 215.8592 208.8660 191.2922
-5.456263 40.34418 219.2696 212.8231 196.6812
-5.453725 40.34418 235.0954 231.4222 222.4115
-5.451188 40.34418 240.3514 237.9094 231.4736
-5.448651 40.34418 237.2358 233.7561 226.2005
-5.446113 40.34418 229.9570 225.3262 214.6201
-5.443576 40.34418 226.7812 221.6796 209.2929
-5.441038 40.34418 222.3593 216.5022 202.0188
-5.438501 40.34418 220.9312 214.9060 200.0306
-5.435964 40.34418 224.7755 219.2661 206.2156
-5.433426 40.34418 222.0479 216.0124 201.6103
-5.430889 40.34418 225.0516 219.8074 207.0263

Y cada capa se puede graficar de manera independiente

plot(tile$lyr.1,
  main = "Raster tile: Layer 1",
  col = hcl.colors(255, "Reds")
)

plot(tile$lyr.2,
  main = "Raster tile: Layer 2",
  col = hcl.colors(255, "Greens")
)

plot(tile$lyr.3, main = "Raster tile: Layer 3", col = hcl.colors(255, "Blues"))

Lovelace, Robin, Jakub Nowosad, and Jannes Muenchow. 2019. Geocomputation with R. R Series. CRC Press.